home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Mac Game Programming Gurus
/
TricksOfTheMacGameProgrammingGurus.iso
/
More Source
/
C⁄C++
/
picture
/
anringpi.c
< prev
next >
Wrap
Text File
|
1993-09-23
|
2KB
|
86 lines
// Copyright 1993 Ralph Gonzalez
/*
* FILE: anringpi.c
* AUTHOR: R. Gonzalez
* CREATED: November 8, 1990
*
* Sample animated pict application.
*/
# include "anringpi.h"
# include "anring.h"
# define NUM_ITERATIONS 100
/******************************************************************
* initialize
******************************************************************/
An_Ring_Pict::An_Ring_Pict(void)
{
Translation *transl;
projector1 = new Projector;
projector1->set_background_color(RED);
projector1->set_cropping_frame(0.,-.05,1.,.5);
projector1->set_projection_frame(0.,0.,1.8,.9);
projector2 = new Corner_Projector;
projector1->set_screen(screen);
projector2->set_screen(screen);
camera1 = new Camera;
camera1->set_position(0.,3.,0.,0.,.29,0.);
camera2 = new Camera;
camera2->set_position(0.,100.,10.,0.,PI/2.,0.);
camera2->set_focal_length(20.);
transl = new Translation;
transl->set(0.,0.,10.);
segment = new Animated_Ring;
segment->move(transl);
delete transl;
}
/******************************************************************
* run
******************************************************************/
void An_Ring_Pict::run(void)
{
int i;
Transformation *identity;
identity = new Transformation;
for (i=0 ; i<NUM_ITERATIONS && !screen->mouse_button_is_down() ; i++)
{
projector1->clear();
segment->set_color(YELLOW);
segment->draw(camera1,projector1,identity);
projector2->clear();
segment->set_color(BLUE);
segment->draw(camera2,projector2,identity);
segment->animate();
}
screen->wait();
delete identity;
}
/******************************************************************
* destroy
******************************************************************/
An_Ring_Pict::~An_Ring_Pict(void)
{
delete projector1;
delete projector2;
delete camera1;
delete camera2;
delete segment;
}